'''
#一、构建
# 1、使用字面值
sxt_list=[1,]
sxt_list=[1,2,3,'sxt','is','very','good','True']
print(sxt_list)
'''

'''
# 2、使用构造函数
sxt_list=list((1,2,3,'sxt','is','very','good','True')) #将元组转为列表
print(sxt_list)
sxt_list=list(range(1,11,2)) #获取奇数  获取1~10之间的奇数  range是左闭右开的
print(sxt_list)
sxt_list=list(range(2,11,2)) #获取偶数  获取1~10之间的偶数 
print(sxt_list)
'''

'''
# 3、脚本操作符
sxt_list=[1,2,3]+[3,2,1] #合并成一个容器为[1, 2, 3, 3, 2, 1] 
print(sxt_list)
sxt_list=[1,2,3]*5 #重复5次[1,2,3] 结果为 [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
print(sxt_list)
'''


'''
# 二、获取
# 获取
sxt_list=[1,2,3,'sxt','is','very','good','True']
print(sxt_list[0])   #结果为1
print(sxt_list[-8])   #结果为1
print(len(sxt_list))    #结果为8
#print(sxt_list[15])      #越界访问 list index out of range


# 改变
sxt_list[3]='hello'     #同c语言一样，给数组赋值
print(sxt_list)
'''


'''
# 三、分片
# 分片 左闭(包含)右开(不包含)
sxt_list=[1,2,3,'sxt','is','very','good','True']
print(sxt_list[1:5]) #指定索引 -》 [2, 3, 'sxt', 'is'] 左闭右开
print(sxt_list[:])    #所有 [1, 2, 3, 'sxt', 'is', 'very', 'good', 'True']
print(sxt_list[0:])    #[1, 2, 3, 'sxt', 'is', 'very', 'good', 'True']
print(sxt_list[0::2])   # 偶数索引 [1, 3, 'is', 'good']
print(sxt_list[-1:-5:-1]) # 指定索引倒序获取 ['True', 'good', 'very', 'is']
print(sxt_list[-1:4])      #倒序可以获取到数据 正序是空 []
'''

'''
# 四、抽取赋值
# 抽取赋值
sxt_list=[1,2,3,'sxt','is','very','good','True']
sxt_list[2]='狗贼'
print(sxt_list)                #[1, 2, '狗贼', 'sxt', 'is', 'very', 'good', 'True']
#抽取个数与赋值个数
sxt_list[1:3:1]=['aaa']        #不匹配时删除，删除未赋值索引元素
print(sxt_list)                #[1, 'aaa', 'sxt', 'is', 'very', 'good', 'True']
sxt_list[1:3:1]=['aaa','bbb']  #匹配时，覆盖 
print(sxt_list)                # [1, 'aaa', 'bbb', 'is', 'very', 'good', 'True']
sxt_list[1:3:1]=['aaa','bbb','ccc'] #连续空间超出时，添加
print(sxt_list)                #[1, 'aaa', 'bbb', 'ccc', 'is', 'very', 'good', 'True']
#注意：不连续空间且超出时，报错
sxt_list=[1,2,3,'sxt','is','very','good','True']
sxt_list[1:3:2]=['aaa','bbb','ccc'] #步长为2且空间不连续，报错 -》ValueError: attempt to assign sequence of size 3 to extended slice of size 1
'''


'''
# 五、List的常用操作
# 1、增加相关
# 常用操作
sxt_list=['shsxt','bjsxt','cssxt','gzsxt','szsxt',False,False,'shsxt']
print("列表长度：",len(sxt_list))  #列表长度： 8
#增加相关
sxt_list.append("msg")  #追加元素['shsxt', 'bjsxt', 'cssxt', 'gzsxt', 'szsxt', False, False, 'shsxt', 'msg']
print(sxt_list) 
sxt_list.append([1,2,3]) #追加新列表 ['shsxt', 'bjsxt', 'cssxt', 'gzsxt', 'szsxt', False, False, 'shsxt', 'msg', [1, 2, 3]]
print(sxt_list) 
sxt_list.extend(['A','B']) #将新列表中的元素添加到末尾
print("将新列表中的元素添加到末尾:",sxt_list)#将新列表中的元素添加到末尾: ['shsxt', 'bjsxt', 'cssxt', 'gzsxt', 'szsxt', False, False, 'shsxt', 'msg', [1, 2, 3], 'A', 'B']
sxt_list.insert(10,"in") #在某个位置插入元素
print("插入：",sxt_list) #插入： ['shsxt', 'bjsxt', 'cssxt', 'gzsxt', 'szsxt', False, False, 'shsxt', 'msg', [1, 2, 3], 'in', 'A', 'B']
'''


'''
# 2、删除相关.
sxt_list=['shsxt','bjsxt','cssxt','gzsxt','szsxt',False,False,'shsxt']
sxt_list.remove('shsxt') #移除元素
print("移除后的元素:",sxt_list)#移除后的元素: ['bjsxt', 'cssxt', 'gzsxt', 'szsxt', False, False, 'shsxt']
print("弹出一个元素:",sxt_list.pop())
print("弹出后列表:",sxt_list)    #弹出后列表: ['bjsxt', 'cssxt', 'gzsxt', 'szsxt', False, False]
sxt_list.__delitem__(1)  #删除下标为1的元素，__下划线开头和结尾，代表特色方法专用标识
print("删除下标为1的元素:",sxt_list) #删除下标为1的元素: ['bjsxt', 'gzsxt', 'szsxt', False, False]
del sxt_list[1]  #根据下标删除元素
print(sxt_list)  ##['bjsxt', 'szsxt', False, False]
sxt_list.clear()  #清空列表 
print("清空：",sxt_list)  #清空： []
'''


'''
# 3、修改相关
# 修改相关
sxt_list=['shsxt','bjsxt','cssxt','gzsxt','szsxt',False,False,'shsxt']
sxt_list[1]="update"
print("修改了sxt_list的下标为1的元素：",sxt_list)#修改了sxt_list的下标为1的元素： ['shsxt', 'update', 'cssxt', 'gzsxt', 'szsxt', False, False, 'shsxt']
'''

'''
# 4、 获取相关 [下标]
sxt_list=['shsxt','bjsxt','cssxt','gzsxt','szsxt',False,False,'shsxt']
print("查询某个值所在的下标，找不到报错:",sxt_list.index(False,0,8)) # 5
print("统计某个值在数组中的个数:",sxt_list.count("shsxt")) # 2
print("是否包含shsxt:",sxt_list.__contains__("shsxt")) #是否包含shsxt: True

#遍历
for i in sxt_list:
    print("元素：",i)

print("-"*50) 

#打印列表前4个元素
for i in range(0,4):
    print("元素：",sxt_list[i])
    
print("-"*50)   
   
#打印列表前4个元素   
for i in sxt_list[0:4]:
    print("元素：",i)
    
print("-"*50) 
'''


'''
# 5、其它
#其它
sxt_list=['shsxt','bjsxt','cssxt','gzsxt','szsxt',False,False,'shsxt']
sxt_list_new=sxt_list.copy()  #复制|克隆
print("复制后的list:",sxt_list_new)# 复制后的list: ['shsxt', 'bjsxt', 'cssxt', 'gzsxt', 'szsxt', False, False, 'shsxt']
sxt_list.reverse() # 反转
print("将顺序反转：",sxt_list)#将顺序反转： ['shsxt', False, False, 'szsxt', 'gzsxt', 'cssxt', 'bjsxt', 'shsxt']
sxt_list1=[1,2,3,4,5]
sxt_list1.reverse()
print("将顺序反转：",sxt_list1) #将顺序反转： [5, 4, 3, 2, 1]

num_list=[7,6,8,9,2,3,1]
num_list.sort(reverse=False) #reverse排序中 False就是按从小到大排，True就是按从大到小，默认是False
print("排序：",num_list) # 排序： [1, 2, 3, 6, 7, 8, 9]

num_list.sort(reverse=True)
print("排序：",num_list)排序： [9, 8, 7, 6, 3, 2, 1]
'''

'''
# 六、
#去重
#思路1：统计去重
list_sxt=["shsxt","sxt","sxt","sxt","sxt","shsxt","shsxt","shsxt","shsxt"]
for e in list_sxt:
    c=list_sxt.count(e)
    print(c)
    if(c>1):
        list_sxt.remove(e)
print(list_sxt)
'''


'''
# 思路 2: 判断去重
list_sxt = ["shsxt", "sxt", "sxt", "shsxt",]
list_sxt2 = []
for e in list_sxt :
# 不在加入
    if e not in list_sxt2 :
        list_sxt2.append(e)
list_sxt = list_sxt2
print(";".join(list_sxt))
'''

# 3、集合去重
list_sxt=["shsxt", "sxt", "sxt", "shsxt",]
list_sxt=set(list_sxt)
print(list_sxt)

